文章目录
  1. 1. Linux下常用压缩 解压命令和压缩比率对比 - 云+社区 - 腾讯云
  2. 2. Linux下常用压缩 解压命令和压缩比率对比
    1. 2.0.1. 技术博文
    2. 2.0.2. 我来说两句
  3. 2.1. 相关文章
    1. 2.1.1. Silverlight第三方控件专题
    2. 2.1.2. Kit 3D 更新
    3. 2.1.3. Spring Reactor 项目核心库Reactor Core
    4. 2.1.4. The .NET of Tomorrow
    5. 2.1.5. 原 canvas绘制clock
    6. 2.1.6. cocos2dx 打灰机
    7. 2.1.7. DotNet加密方式解析–非对称加密
    8. 2.1.8. canvas画简单电路图
    9. 2.1.9. Luminous版本PG 分布调优
    10. 2.1.10. Mix 10 上的asp.net mvc 2的相关Session

Linux下常用压缩 解压命令和压缩比率对比 - 云+社区 - 腾讯云

tar 压缩

Linux下常用压缩 解压命令和压缩比率对比

joshua317发表于技术博文472472

常用的格式有: tar, tar.gz(tgz), tar.bz2,

不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大。

  1. tar 只是打包动作,相当于归档处理,不做压缩;解压也一样,只是把归档文件释放出来。

(1)打包归档格式:

tar -cvf examples.tar files|dir
#说明:
-c, --create  create a new archive 创建一个归档文件
-v, --verbose verbosely list files processed 显示创建归档文件的进程
-f, --file=ARCHIVE use archive file or device ARCHIVE  后面要立刻接被处理的档案名,比如--file=examples.tar

#举例:
tar -cvf file.tar file1       #file1文件
tar -cvf file.tar file1 file2 #file1,file2文件
tar -cvf file.tar dir         #dir目录

(2)释放解压格式:

tar -xvf examples.tar (解压至当前目录下)
tar -xvf examples.tar  -C /path (/path 解压至其它路径)

#说明:
-x, --extract, extract files from an archive 从一个归档文件中提取文件

#举例:
tar -xvf file.tar
tar -xvf file.tar -C /temp  #解压到temp目录下
  1. tar.gz tgz (tar.gz和tgz只是两种不同的书写方式,后者是一种简化书写,等同处理) 这种格式是Linux下使用非常普遍的一种压缩方式, 兼顾了压缩时间(耗费CPU)和压缩空间(压缩比率) 其实这是对tar包进行gzip算法的压缩

(1)打包压缩格式:

tar -zcvf examples.tgz examples (examples当前执行路径下的目录)

说明:
-z, --gzip filter the archive through gzip 通过gzip压缩的形式对文件进行归档

举例:
tar -zcvf file.tgz dir #dir目录

(2)释放解压格式:

tar -zxvf examples.tar (解压至当前执行目录下)
tar -zxvf examples.tar  -C /path (/path 解压至其它路径)

举例:
tar -zcvf file.tgz
tar -zcvf file.tgz -C /temp

3 tar.bz

Linux下压缩比率较tgz大,即压缩后占用更小的空间,使得压缩包看起来更小。 但同时在压缩,解压的过程却是非常耗费CPU时间。

(1)打包压缩格式:

tar -jcvf examples.tar.bz2 examples   (examples为当前执行路径下的目录)

说明:
-j, --bzip2 filter the archive through bzip2 通过bzip2压缩的形式对文件进行归档

举例:
tar -jcvf file.tar.bz2 dir #dir目录

(2)释放解压:

tar -jxvf examples.tar.bz2 (解压至当前执行目录下)
tar -jxvf examples.tar.bz2  -C /path (/path 解压至其它路径)

举例:
tar -jxvf file.tar.bz2
tar -jxvf file.tar.bz2 -C /temp

4 gz 压缩: gzip -d examples.gz examples

解压: gunzip examples.gz

5 zip zip 格式是开放且免费的,所以广泛使用在 Windows、Linux、MacOS 平台,要说 zip 有什么缺点的话,就是它的压缩率并不是很高,不如 rar及 tar.gz 等格式。 压缩: zip -r examples.zip examples (examples为目录)

解压: zip examples.zip

6 .rar 压缩: rar -a examples.rar examples

解压: rar -x examples.rar

压缩比率,占用时间对比

为了保证能够让压缩比率较为明显,需选取一个内容较多、占用空间较大的目录作为本次实验的测试。 找了一个大概有23G的目录来测试,首先要明确由于执行环境的变化,误差在所难免

首先明确一个概念: 压缩比率=原内容大小/压缩后大小,压缩比率越大,则表明压缩后占用空间的压缩包越小

.tar

打包:
time tar -cvf test.tar /usr/test
时间:
real    3m20.709s
user    0m3.477s
sys     0m42.595s

大小:
打包前:23214680
打包后:22202984

耗时:3m20.709s
压缩比率:22202984/23214680

解压:
time tar -xvf test.tar

大小:
解压前:22202984
解压后:23211064

耗时:
real    2m47.548s
user    0m4.999s
sys     1m14.186s

.tgz

打包压缩:
time tar -zcvf test.tgz /usr/test
时间:
real    16m30.767s
user    16m1.394s
sys     1m7.391s

大小:
打包前:23211064
打包后:18949032

耗时:
压缩比率:

解压:
tar -zxvf test.tar

大小:
解压前:18949032
解压后:23211064

耗时:
real    3m52.418s
user    2m46.325s
sys     1m21.442s

.tar.bz2

打包压缩:
time tar -jcvf test.tar.bz2 /usr/test

时间:
real    80m39.422s
user    80m14.599s
sys     0m58.623s

大小:
打包前:23211064
打包后:18728904

耗时:80m39.422s
压缩比率:

解压:
time tar -jxvf test.tar.bz2

时间:
real    27m54.525s
user    27m44.108s
sys     1m43.645s

大小:
解压前:18728904
解压后:23211064

1620.png

综上结果,初步结论:

综合起来,在压缩比率上: tar.bz2>tgz>tar 占用空间与压缩比率成反比: tar.bz2<tgz<tar 耗费时间(打包,解压) 打包:tar.bz2>tgz>tar 解压: tar.bz2>tar>tgz 从效率角度来说,当然是耗费时间越短越好

因此,Linux下对于占用空间与耗费时间的折衷多选用tgz格式,不仅压缩率较高,而且打包、解压的时间都较为快速,是较为理想的选择。

结论:

再一次印证了物理空间与时间的矛盾(想占用更小的空间,得到高压缩比率,肯定要牺牲较长的时间;反之,如果时间较为宝贵,要求快速,那么所得的压缩比率一定较小,当然会占用更大的空间了)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于 2018-04-16

Linux

举报

技术博文

314 篇文章42 人订阅

我来说两句

0 条评论

登录 后参与评论

相关文章

来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC…

4355

来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita…

2906

来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv…

2732

来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

38210

来自专栏魂祭心

原 canvas绘制clock

5024

来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include “GamePlane.h” #include “PlaneSprite.h” #include “BulletNode.h” #include…

6966

来自专栏C#

DotNet加密方式解析–非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱…)…

5808

来自专栏落花落雨不落叶

canvas画简单电路图

82111

来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群…

3645

来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel…

2767

文章目录
  1. 1. Linux下常用压缩 解压命令和压缩比率对比 - 云+社区 - 腾讯云
  2. 2. Linux下常用压缩 解压命令和压缩比率对比
    1. 2.0.1. 技术博文
    2. 2.0.2. 我来说两句
  3. 2.1. 相关文章
    1. 2.1.1. Silverlight第三方控件专题
    2. 2.1.2. Kit 3D 更新
    3. 2.1.3. Spring Reactor 项目核心库Reactor Core
    4. 2.1.4. The .NET of Tomorrow
    5. 2.1.5. 原 canvas绘制clock
    6. 2.1.6. cocos2dx 打灰机
    7. 2.1.7. DotNet加密方式解析–非对称加密
    8. 2.1.8. canvas画简单电路图
    9. 2.1.9. Luminous版本PG 分布调优
    10. 2.1.10. Mix 10 上的asp.net mvc 2的相关Session